Page({

  /**
   * 页面的初始数据
   */
  data: {
    zh: '',
    schema:[
    ],
    formData:{
      'open-type': 'navigate',
      url: '/packageComponent/pages/nav/navigator/navigate?title=navigate',
      delta: 1,
      'hover-class': 'navigator-hover',
      'hover-stop-propagation': false,
      'hover-start-time': 50,
      'hover-stay-time': 600,
      'app-id': 'wx4f1b24bdc99fa23b',
      'path': '',
      'extra-data' :'',
      version: 'release',
      'short-link': ''
    },
    title: '',
    result: '',
    remark: '',
    webUrl: '',
    apiName: '',
    showPrivacy: false
  },
  onUnload() {
  },
  onLoad(options) {
    console.log('options', options)
    wx.setNavigationBarTitle({
      title: options.title,
    })
    
    this.setData({
      title: options.title,
      zh:options.zh,
      remark: options.remark,
      webUrl: options.webUrl,
      target: options.target
    })
    if(options.target === 'self') {
      this.setData({
        schema: [
          {
            label:'当前小程序内的跳转链接',
            prop: 'url',
            type:'picker',
            labelOptions:['普通页面地址', 'tabBar页面地址'],
            valueOptions:['/packageComponent/pages/nav/navigator/navigate?title=navigate', '/page/component/index'],
          },
          {
            label:'渲染模式',
            prop: 'open-type',
            type:'picker',
            labelOptions:['保留当前页面，跳转到应用内的某个页面', '关闭当前页面，跳转到应用内的某个页面', '跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面', '关闭所有页面，打开到应用内的某个页面', '关闭当前页面，返回上一页面或多级页面'],
            valueOptions:['navigate', 'redirect', 'switchTab', 'reLaunch', 'navigateBack'],
          },
          {
            label:'当 open-type 为 navigateBack 时有效，表示回退的层数',
            prop: 'delta',
            type:'number'
          },
          {
            label:'指定点击时的样式类',
            prop: 'hover-class',
            type:'text'
          },
          {
            label:'指定是否阻止本节点的祖先节点出现点击态',
            prop: 'hover-stop-propagation',
            type:'switch'
          },
          {
            label:'按住后多久出现点击态，单位毫秒',
            prop: 'hover-start-time',
            type:'number'
          },
          {
            label:'手指松开后点击态保留时间，单位毫秒',
            prop: 'hover-stay-time',
            type:'number'
          },
        ]
      })
    }
    if(options.target === 'miniProgram') {
      this.setData({
        schema: [
          {
            label:'渲染模式',
            prop: 'open-type',
            type:'picker',
            labelOptions:['保留当前页面，跳转到应用内的某个页面', '关闭当前页面，返回上一页面或多级页面', '	退出小程序'],
            valueOptions:['navigate', 'navigateBack', 'exit'],
          },
          {
            label:'要打开的小程序 appId',
            prop: 'app-id',
            type:'text'
          },
          {
            label:'打开的页面路径，如果为空则打开首页',
            prop: 'path',
            type:'text'
          },
          {
            label:'需要传递给目标小程序的数据',
            prop: 'extra-data',
            type:'text'
          },
          {
            label:'要打开的小程序版本',
            prop: 'version',
            type:'picker',
            labelOptions:['开发版', '体验版', '正式版'],
            valueOptions:['develop', 'trial', 'release'],
          },
          {
            label:'当传递该参数后，可以不传 app-id 和 path。链接可以通过【小程序菜单】->【复制链接】获取',
            prop: 'short-link',
            type:'text'
          },
          {
            label:'指定点击时的样式类',
            prop: 'hover-class',
            type:'text'
          },
          {
            label:'指定是否阻止本节点的祖先节点出现点击态',
            prop: 'hover-stop-propagation',
            type:'switch'
          },
          {
            label:'按住后多久出现点击态，单位毫秒',
            prop: 'hover-start-time',
            type:'number'
          },
          {
            label:'手指松开后点击态保留时间，单位毫秒',
            prop: 'hover-stay-time',
            type:'number'
          },
        ]
      })
    }
  },
  getFormData(e) {
    console.log('formdata==', e.detail.formData);
    this.setData({
      formData: e.detail.formData
    })
  },
  bindsuccess(e) {
    this.setData({
      result: e,
      apiName: 'navigator'
    })
  },
  bindfail(e) {
    this.setData({
      result: e,
      apiName: 'navigator'
    })
  },
})